<!--
Safari: fxn 2,898,071; accessor 2,788,465 (1.039x)
Firefox: fxn 1,503,847; accessor 285,800 (5.262x)
Chrome: fxn 3,800,661; accessor 1,083,391 (3.508x)
-->
<html>
    <head><title>XXX</title></head>
    <body>
        <script>
            var fxn = function(ob, attr, val) {ob[attr] = val};
            var accessor = function(val) {this._attr = val;};

            var ob = {};

            var fxn_count = 0;
            var start = (new Date).getTime();
            while (((new Date).getTime() - start) < 1000) {
                fxn(ob, 'attr', 42);
                fxn_count += 1;
            }

            var accessor_count = 0;
            var ob = {};
            ob.__defineSetter__("attr", accessor);
            start = (new Date).getTime();
            while (((new Date).getTime() - start) < 1000) {
                ob.attr = 42;
                accessor_count += 1;
            }

            alert(["fxn", fxn_count, "\naccessor", accessor_count].join(' '));
        </script>
    </body>
</html>
